﻿using System;
using System.Collections.Generic;
using Battle.Engine.LogicModel;

namespace Battle.Engine
{
    public class EngineCallback
    {
        //战斗开始
        public virtual void BattleBegin(CampType roundCamp)
        {

        }

        //战斗结束,战斗结果
        public virtual void BattleEnd(EngineData data)
        {

        }

        //回合开始
        //@param roundCamp 这回合的出手
        public virtual void RoundBegin(int roundNum, CampType roundCamp, EngineData data)
        {
        }

        //回合结束
        //@param nextRoundCamp 下回合是哪方出手
        public virtual void RoundEnd(CampType nextRoundCamp)
        {

        }

        //技能进入队列
        public virtual void SkillPress(CampType camp, string uniquedId, int skillIndex)
        {

        }

        //技能开始
        public virtual void SkillBegin(FSkill skill, List<FActor> targets)
        {

        }

        //技能结束
        public virtual void SkillEnd(CampType camp, string uniquedId, int skillIndex, FSkill skill)
        {

        }

        //技能伤害
        public virtual void SkillCast(Engine.LogicModel.FRelease release)
        {

        }

        //技能发射
        public virtual void SkillProject(Engine.LogicModel.FRelease release)
        {

        }

        public virtual void RoundBeginTick(List<FExport> exports) {

        }

        public virtual void RoundEndTick(List<FExport> exports) {

        }

        //
        public virtual void Tick(List<FExport> exports)
        {

        }
        //
        public virtual void BreakCombo(string playerUid)
        {

        }

        //没有激活状态的普通技能(激活状态包括等待和释放)
        public virtual void HaventActiveNormalSkill()
        {

        }

        public virtual void TransConfirm(List<string> uids, List<int> fpids) {

        }

        public virtual void SkipUltimate() {

        }
    }
}
